# _*_ coding: UTF-8 _*_
# @Time     : 2021/10/26 15:08
# @Author   : Gong Yangyi
# @Site     : http://www.hzdledu.cn/
# @File     : prac.py
# @Software : PyCharm

# 1.# 求 1-100以内所有含6的数
list1 = []
for i in range(1, 101):
    if i < 10:
        i = str(i)
        a = int(i[0])
        if a == 6:
            list1.append(int(i))
    elif i > 10:
        i = str(i)
        a = int(i[0])
        b = int(i[1])
        if a == 6:
            list1.append(int(i))
        elif b == 6:
            list1.append(int(i))
print(list1)


# def foo0():
#     list1 = []
#     for i in range(1, 101):
#         i = str(i)
#         j = str(i)
#         if '6' in i:
#             list1.append(int(i))


print('----------------------------------------------------')


# 2、Chuckie Lucky赢了100W美元，
# 他把它存入一个每年盈利8%的账户。
# 在每年的最后一天，Chuckie取出10W美元。
# 编写一个程序，计算需要多少年Chuckie就会清空他的账户。
def foo4():
    money = 1000000
    year = 0
    while True:
        money = money * (1 + 0.08) - 100000
        money = money-100000
        year +=1
        if money <=0:
           break
        return year
print(foo4())

print('----------------------------------------------------')
# 3、题目：猴子吃桃问题：猴子第一天摘下若干个桃子，当即吃了一半，还不瘾，又多吃了一个 第二天早上又将剩下的桃子吃掉一半，又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时，见只剩下一个桃子了。求第一天共摘了多少。
# 程序分析：采取逆向思维的方法，从后往前推断。
p = 1
for i in range(1, 10):
    p = (p + 1) * 2
print('第1天共摘了%s个桃子' % p)

print('----------------------------------------------------')


# 4、不使用自带函数，写一个函数，用于返回一个数的绝对值
def foo1(a):
    if a > 0:
        return a
    else:
        return a * -1


print(foo1(2))

print('----------------------------------------------------')


# 5、写一个函数，用来求三个数的最大值
def foo2(a, b, c):
    if a > b and a > c:
        return a
    elif b > c:
        return b
    else:
        return c


print(foo2(1, 2, 3))

print('----------------------------------------------------')


# 提升：
# 6、写一个函数，返回输入整数（大于999小于10000）的每位数的数字之和。
def foo3(x):
    if x in range(1000, 10000):
        x = str(x)
        x1 = int(x[0])
        x2 = int(x[1])
        x3 = int(x[2])
        x4 = int(x[3])
        sum1 = x1 + x2 + x3 + x4
        print(f'每位数之和为：{sum1}')
    return sum1


print(foo3(9999))

print('----------------------------------------------------')
# 7.递归实现阶乘：
# n！=nxn-1xn-2x....1
# 5!=5x4！
def foo7(n):
    if n==1:
        return 1
    else:
        return n*foo7(n-1)
# 8.实现1！+2！+3！+。。。+n！
def foo8(n):
    sum =0
    for i in range(1,n+1):
        sum +=foo7(i)
    return sum


print(foo8(4))
